AppMan HWZ WP

[Press Releases | Careers | Products | Corporate Info | Doing Business | Services | Home Page]






Application Management:

A Crisis in Enterprise
Client/Server Computing






A Hurwitz Consulting Group White Paper
January 1996


Application Management: A Crisis in Enterprise Client/Server Computing

Executive Summary


Information technology is evolving from its monolithic, platform-centric past to a cross-platform distributed computing future. This evolution promises more flexible and more powerful forms of computing that can support, rather than control, business organizations. Unfortunately, the widespread movement to distributed computing is being thwarted by problems with the reliability, performance, and security of distributed applications. These problems highlight the need for major improvements in the way applications operate.




Every organization moving toward mission-critical, distributed computing must formulate and implement an application management strategy.
What is needed is an approach that ensures the availability, performance, and security of distributed applications. Hurwitz Consulting Group, Inc. (HCG) believes that traditional systems management disciplines need to be applied to distributed applications. These disciplines include problem management, performance analysis and tuning, configuration management, software distribution, and the ability to build event-driven management applications. By applying systems management technology and discipline to applications, organizations can begin to achieve the benefits of distributed computing while controlling risk and avoiding pitfalls. Collectively, HCG calls this solution Application Management. Further, HCG believes that every organization moving toward mission-critical, distributed computing must formulate and implement an application management strategy.



Look for development tools that support application management and integrate with network and systems management tools
In devising an application management strategy, technology managers should focus on leveraging a solid foundation of network and systems management technology and practices. No amount of troubleshooting at the level of the distributed application will solve a problem with a core networking connection. HCG calls the interrelationship between network, systems, and application management the application dependency stack. Technology managers planning to develop manageable applications should look for development tools that support application management and integrate with network and systems management tools to provide easy navigation through the application dependency stack
This white paper outlines the problems of enterprise client/server computing that are solved by application management and concludes with an overview of Unify's AppMan product, one of the first products in a new class of client/server tools that directly address the issues in this important field.

The Problem



The complexity of the applications is making them difficult to manage
The industry has widely proclaimed its move to more sophisticated forms of distributed computing. Three-tier or even multi-tier application architectures and application development tools are being touted as the path towards a more sophisticated distributed computing environment. Hurwitz Consulting Group, Inc. (HCG) believes that, by any moniker, cross-platform, distributed computing is what will allow users of desktop-based personal systems to enter seamlessly into the more controlled and high-powered world of corporate commercial computing. However, there is a problem: The complexity of the applications is making them difficult to manage.
We are in the midst of a significant shift in computing, away from host-centric or centralized application designs and towards more distributed or networked application designs. In fact, even the PC-based and mini-computer downsizing revolutions were a form of host-based computing. In host-based computing, a single operating system platform dominates. Other computers can access the system; however, they are subordinate to, and controlled by, the host.
What all of these historical approaches have in common is the straightforward nature of their operational model. Although elements outside the "host" needed to be managed, keeping the host system up and running and your code relatively bug free enabled your applications to work.

The New World of Networked, Cross-Platform Applications

Interdependencies can cause an application to fail




The lack of manageability has led to a crisis in enterprise computing.
The new world of networked, cross-platform applications breaks with this historical model. Now, components of an application can be disbursed across a network. Interdependencies can cause an application to fail, even when the user interface computer and its direct network links are functioning properly. And if the application running on the desktop machine itself fails, its remoteness and the complexity of its network connection may make it impossible for central administrators to diagnose (and therefore fix) the actual cause of the failure. This leads HCG to conclude that in today's client/server world, applications must be explicitly managed. The lack of manageability in today's client/server applications has led to a crisis in enterprise computing and is a barrier to their much wider adoption. Systems operators must ensure that all the component pieces of a distributed application are available. Developers must also ensure that they have adequate failover and recovery mechanisms in their applications that take into account the possibility of an unavailable server, a down network link, or a sudden, unpredictable degradation in performance.





Client/server applications must be explicitly managed.
We have seen situations in which a sophisticated client/server application was developed using advanced client/server development tools, but it could not be deployed because technology managers never worked out a deployment plan that addressed their mixed computing environment. We have also seen a situation where a leading client/server development tool was used to build a mission-critical application that suffered performance problems. After much experimentation and frustration, the project was canceled and the development environment was pulled out of the company. Unfortunately, the company later found out that they had a problem with their router technology, not with their application. While these are extreme examples, HCG believes that most companies currently building large-scale client/server applications will have significant difficulty deploying and maintaining the efficient operation of client/server applications.
Keep in mind that client/server technology is pushing the limits of the core capabilities of operating systems, databases, and network environments. (Look at the limitations of Windows 3.1 as a client platform, for instance.) While distributed application architectures are necessary to support business objectives and needs, they push the edge of the envelope even further. The result is that client/server applications must be managed explicitly in order to be successful. This means that technology managers must have an operational strategy in place that encompasses people, processes, and powerful management technologies.

Client/server applications with-out integrated monitoring facilities, fail-over mechanisms, or recovery strategies are time bombs.
Client/server architectures provide a rich medium for addressing business requirements and challenges. However, client/server applications are inherently fragile. A down network link or a crashed server can undermine the availability of key, business-critical applications. This means that client/server applications without integrated monitoring facilities, fail-over mechanisms, or recovery strategies are the computer equivalents of time bombs waiting to be triggered by inevitable events. Likewise, the people responsible for a given application run the risk of undermining their own credibility if they are not ready and able to deal with security, performance, or backup and recovery issues.

Applications: Where Computing Technology and Business Requirements Intersect

The application is where computing technology and business requirements intersect. This makes applications the natural level for measuring the effectiveness and efficiency of information technology. Ironically, the historical focus of system and network information management on underlying technology assets fails to address the ultimate measure of success: Is the application up and running, performing well, secure, etc.?
Failures can be prevented by focusing on application management at the development stage The challenge for technology managers embarking on the client/server journey is to use systems and network management technology to address application requirements. The goal of this effort is to leverage the power and potential of new development environments, while providing the high levels of availability and efficiency found in the mature data center environment. HCG believes that a large proportion of the failures in today's client/server implementations are caused by unmanageable applications. These failures can be prevented by focusing on application management at the development stage and building upon available system and network management processes and technologies. These are the keys to adopting new distributed forms of computing without giving up the control, reliability, and security of the past.


The Solution: Definition of Application Management

Let's assume that your company already has a strong development environment and a good quality-control process. What now? What are the next steps to successfully deploying and managing a client/server application? HCG uses the term application management to describe the overall process of reliably moving an application from development into production, and of insuring the satisfactory functioning of the application in a runtime environment. In the following section of this white paper, we provide a more in-depth explanation and discussion of each of these crucial areas of application management.
Preparing and Distributing the Application
Three key steps: packaging, configuration management, and software distribution Because client/server technology is relatively immature, many developers and development tool vendors have overlooked the rather obvious but potentially labor-intensive process of deploying applications. There are three key steps to this process: packaging, configuration management, and the hand-off (or link) to software distribution packages.

Packaging

The first step in the deployment process is packaging the actual executables and supporting configuration software that will be installed on the target platforms. This constitutes the effective hand-off from the development lab to the real-world production environment. In a perfect world, all software would be self-configuring. It would identify the technical environment it is running in and then use the configuration information to establish the appropriate parameters to effect a "self-installation." However, the complexity of corporate client/server environments and the specialization of custom-developed applications make this intelligent configuration and installation process elusive.
A cross-platform development environment is invaluable A cross-platform development environment is invaluable for preparing to deploy applications into a mixed-platform environment. Many of the leading cross-platform environments include a specification and configuration facility that lets developers quickly generate multiple versions of an application to run in a variety of target deployments. This includes settings for a variety of client systems, mixed network and server environments, and situations in which multiple databases may need to be supported. Before pushing an application into actual production distribution, technology managers should verify that the application works correctly in each target configuration.

Configuration Management

As the complexity and scale of the runtime environment increase, the ability to track and accommodate distributed configurations becomes increasingly important. The Desktop Management Task Force's Management Information File is an important recent standard for monitoring and controlling desktop configurations. This standard provides a common way for vendors of desktop technology to log the composition of their technology. Application managers should analyze the information gathered from these and other sources to support the configuration planning process.

Links to Software Distribution Technology

Automated links between the development environment and software distribution tools help Automated links between the development environment and software distribution tools help facilitate the software distribution process. The job of turning production-ready code into packaged software distribution modules can be a significant task. This is because each vendor's software distribution package requires some level of customized packaging to provide the handles for controlling the distribution job. While it may seem trivial to package an application once for a single software distribution package, we highly recommend that application managers automate this process. Once an application is up and running, it is inevitable that there will be a need for frequent and granular distribution updates and fixes.

Runtime Application Management

Picture an application that records the line of code that is causing a problem Unfortunately, much of the distributed client/server application world is a black box for operational managers. Finding the source of runtime application problems can be elusive or even impossible with current technology. Picture a situation where a client/server application starts to malfunction, frustrating users and operations support people alike. Now picture an application that automatically records the exact line of code in an application that is causing a problem, then goes on to automatically notify developers of the problem. This is an example of a managed application.







An application management solution should include the capability to monitor
Clearly, once an application has been distributed into a production environment, operational managers need ways to monitor and control the application's behavior. We call this runtime application management. There are a number of technical requirements, which stem from industry experience with distributed systems management, that are necessary to effect this runtime management capability. The following core capabilities should be present across a distributed environment so that managers can control distributed applications:
Monitoring. An application management solution should include the capability to monitor the functioning of each key application service in a distributed environment. This information can be recorded into a local log file and/or communicated to a central management station. For example, if an application service that processes catalog orders from Internet browsers in real-time is not processing orders correctly, the condition should be discovered by the appropriate monitors. Typically, these monitors are software agents or probes that run continuously in the background of the node platform they are responsible for.
To be effective, monitoring programs need to be able to generate events Eventing. To be effective, monitoring programs need to be able to generate events when thresholds are exceeded or critical problems occur. In the example of a reservation system, a locked transaction may cause dozens, or even hundreds, of agents to lose access to the system. The agents don't know what is wrong, but if the application includes the appropriate management capabilities, it can communicate the nature of the problem to system administrators who can then take the appropriate actions to put the agents back in business. An application eventing capability is what makes this possible.
Some consoles include the ability to take an automated action in response to an event Communication. Once an event occurs, it may be significant enough to communicate to a central management console. This requires the services of logical level communications to pass data, including state and context information, back to a centralized console. The console can include icons or any other form of abstract management view of the distributed environment. In addition, some consoles include the ability to take an automated action in response to an event, such as invoking a corrective program to fix a problem or sending an e-mail or beeper message to notify the appropriate management personnel. The goal of this communication capability is to trigger proactive, real-time intervention to solve management problems and issues.
Administrators need a way to monitor the total response time of transactions Performance. One of the strengths of client/server computing is the ability to enable users to access and use data in new ways. One of the weaknesses is that this access may occur in unpredictable ways, often creating problems in the form of slow response time. In order to guarantee the responsiveness of client/server applications, administrators need a way to monitor the total response time of transactions. In addition, the ability to probe and monitor particular pieces of a distributed application provides valuable information for developers seeking to improve application performance. The goal of an application performance management strategy should be to support both end-to-end performance monitoring and to identify poorly-performing application components that need to be improved.


Administration

Another key aspect of application management is administration. This is the ability to implement policies across an environment in order to control the interaction of resources, including people and the systems they use. Again, those tackling the issue of distributed application management can learn from and leverage some of the available systems management technology that is already in place.
A key administration capability is the ability to implement management policies across the distributed environment, such as performing a backup of critical data every night after business has closed.
Administrators [can] set up administrative policies on a group-based policy level and control distributed configurations In order to streamline the role of the administrator, a good administrative interface is necessary. Such an interface should allow administrators to set up administrative policies on a group-based policy level and control distributed configurations. For example, an administrative interface should enable administrators to control applications at a higher level by admitting people to groups, rather than fiddling with individual user profiles. Another benefit of a unified administration approach is the ability to integrate the administration of a variety of underlying computing assets. These assets might include databases, operating systems, and application server logic. A unified administration scheme can be used to mesh these varying assets into an integrated whole.

Security



Developers need to focus on whether security policies for underlying systems are violated by applications
Unfortunately, many early client/server applications and client/server security approaches have actually compromised security. Developers need to focus on whether applications store and transmit unencrypted passwords and whether security policies for underlying systems are violated by applications. To be effective, a client/server application security framework should leverage a robust distributed security environment that includes encryption technology and possibly a public/private key approach. The Kerberos security system included as part of the Open Software Foundation's Distributed Computing Environment (OSF DCE) is a good example of a robust, distributed security implementation. Kerberos provides a time-stamp based authorization approach to enabling access to distributed computing resources. Since the Kerberos approach is flexible and adaptable, application-level resources can be included as secured assets.
One of the shortcomings of Kerberos is its complexity One of the shortcomings of Kerberos is its complexity. Developers coding directly to the general security services application programming interface (GSS API) of Kerberos must deal with a multitude of low-level programming interfaces. Leveraging such a sophisticated security capability requires strong security tools.

Asset and License Management


In situations where runtimes are required, the licensing process should be flexible and automated
A vendor of distributed application development tools or turnkey distributed applications should also provide ways to streamline the administration of licenses. In situations where runtimes are required, the licensing process should be flexible and automated. This might include the ability to base licensing on concurrent users or on group-based pricing. In general, the strategy should be to partner with a vendor to meet computing needs without creating an administrative headache over licensing. An application development tool should also integrate with asset management products, allowing technology managers to track applications in a distributed environment.

Designing Manageability into Applications

All of the application management objectives outlined above require that applications have manageability as part of their core design. HCG calls this application instrumentation. There are two aspects of instrumenting an application: building the ability to record the state of an application in the form of data and providing programmatic interfaces to control the behavior and state of applications. These capabilities should be linked into systems management software for real-time monitoring and eventing. An example of recording an application state is a log file on a local PC that records the name of remote procedure calls issued by a program and when they were executed. This information provides a record of how an application is functioning and a way to trace the source of application problems. An example of a control API is a programmatic call to abort and restart a memory-resident server program if the program needs to be re-initialized.
Instrumenting an application is a key capability that should come from the vendors of application development tools The ability to instrument an application effectively is a key capability that should come from the vendors of application development tool technology. Without appropriate assistance from a vendor, it would be impractical to expect developers to solve instrumentation problems on their own. At the minimum, a development tool vendor should provide some basic APIs and data structures that developers can extend and use to instrument their applications. Ideally, a development tool vendor should provide this capability automatically, in order to generate instrumentation automatically, without imposing any additional coding requirements.

Implementing an Application Management Strategy - What to Look For

HCG has developed some guidelines for implementing an application management strategy. These guidelines are not strict rules; rather, they are intended as key checkpoints for those implementing an application management strategy.

Build upon a Systems and Network Management Foundation

An application management strategy should be considered a key part of a larger system-wide strategy for achieving reliable and effective computing. Therefore, application management should integrate and interoperate with leading network and systems management technologies.

Focus on the Application Dependency Stack

In a client/server environment, systems management, network management, and application management are all interrelated. A problem in an application may be caused by a down network link or a crashed database. HCG calls this interrelationship between systems management, network management, and application management the application dependency stack (see diagram). A good application management approach will enable operators to monitor applications to insure that service levels are maintained with end users, then to step down through the stack to determine whether and where problems are occurring.
Figure 1: Application Dependency Stack

Select Development Tools that Provide Management Capabilities

Manageability is a key part of application design Manageability is a key part of application design; doing it as an afterthought is difficult and inefficient. Developers will need coaching and guidance on how to instrument applications and use proper design techniques. The best way to learn management techniques and principles quickly is to study the ways that it is being implemented today in core systems. The same techniques and principles that have been used to manage UNIX systems and relational databases need to be applied to applications. Briefly, development tool management requirements include:
  • The ability to record and communicate information about the state of an application. This information is critical to administrators who must troubleshoot applications.
  • Programmatic interfaces to enable external management tools to take corrective action.
  • The ability to generate events to signal that a problem has occurred or a key threshold has been exceeded. Events should automatically integrate with whatever systems management product is in place.
  • Administrative interfaces to control configurations, settings, and execution parameters. These programmatic interfaces are critical for managers who must efficiently administer distributed applications, preferably at runtime.
Application management should be a key criterion for selecting any development tool Application management should be a key criterion for selecting any development tool that will be used to build reliable and efficient large-scale applications. Developers should look for tool vendors that have a management tool strategy and roadmap, including:
  • Utilities and open APIs for building management into applications. These APIs facilitate the development of manageable applications.
  • Process techniques and assistance. A vendor should be able to provide guidance to your developers, since many of them will be unfamiliar with the techniques necessary to build manageability into applications.
  • Built-in instrumentation for key events and performance metrics. This will enable the developer to focus on adding application functions instead of application management.
  • Bundled, lightweight agent/console capability as well as integration with key systems management tools. Some of the systems into which you deploy your applications will not have a strong management tool in place. Therefore, the vendor should provide some manageability in the absence of high-end, distributed systems management products.

Unify VISION Application Management Strategy

In response to the challenges of application management, Unify has developed its AppMan strategy. AppMan consists of both currently-available technology and an ongoing strategy for application management. In its first release, AppMan addresses several of the core application management functions that HCG has identified as crucial to application management. In addition, the way that Unify has implemented AppMan conforms to many of the principles that HCG has defined for a successful application management strategy.
Release 1.0 of AppMan addresses the major application management areas identified by HCG Release 1.0 of AppMan addresses the major application management areas identified by HCG: Application Distribution, Runtime Application Management, and Application Administration. These capabilities are designed to improve the manageability and effectiveness of applications that are developed with the VISION development environment.
[AppMan is now included with the VISION development environment.]
To facilitate the process of distributing applications across geographically-dispersed computing environments, AppMan Release 1.0 provides a set of utilities that help automate the process of packaging and distributing applications with leading software distribution tools, including Microsoft's Systems Management Server (SMS) and Tivoli Courier. An AppMan automated deployment configurator helps developers specify file configurations for target platforms. AppMan then automatically generates the application description files and distribution specifications for the appropriate software distribution system.
VISION has an eventing capability that provides automatic monitoring and alerting for 400 pre-defined events AppMan and Unify VISION support Runtime Application Management through a set of tightly-integrated management services. Unify has built a broad range of monitoring capabilities directly into its VISION environment to provide automatic monitoring of events and conditions inside VISION applications, and to monitor the interaction of VISION applications with platforms and operating systems. An eventing capability provides automatic monitoring and alerting for 400 pre-defined events. Through integration with leading enterprise management systems, these events can be automatically passed to the Tivoli Enterprise Console and BMC's Patrol, enabling further processing, operator notification, and automated response.
Developers can create their own events Release 1.0 also includes an SNMP agent capability. This enables VISION events to generate SNMP traps that can be picked up and processed by industry-leading network management platforms, including IBM NetView, HP OpenView, and Sun NetManager. The hand-off between VISION and industry-leading management platforms enables the communication capabilities of the leading management platforms to insure that messages get back to the management console. Finally, developers can create their own events by writing a single line of VISION 4GL code, thereby activating the other integrations and capabilities of AppMan.
VISION automatically provides 60 performance metrics, including end-to-end transaction response time In the area of runtime performance management, AppMan Release 1.0 enables VISION applications to report key performance metrics to Hewlett-Packard's industry-leading MeasureWare performance measurement system and the BMC Patrol management environment. In addition, SNMP compatibility enables any SNMP-compliant performance monitoring and analysis tool to collect and analyze VISION performance data. VISION automatically provides 60 performance metrics in the application, including end-to-end transaction response time (a key measure that has proven elusive to the industry), network latency for a single unit of work that spans processes on many computers, database response time, and other metrics that can be used to diagnose and improve VISION applications.
AppMan provides a graphical console to manage VISION partitions To support the administration of VISION applications, AppMan provides a graphical AppMan console that enables administrators to display, start, stop, and restart VISION partitions. The console also supports drag-and-drop configuration of VISION partitions from clients to servers and between servers to optimize distributed applications.
Unify plans to extend the capabilities of the administration console to include baseline event and performance management capabilities with Release 2.0 of AppMan. In Release 2.0, Unify will address the issue of security by integrating with leading security management systems to provide controlled access to application services as well as integrating with leading asset management and licensing systems.
AppMan leverages leading systems management technologies, such as Tivoli and BMC Patrol The Unify AppMan offering follows most of the basic principles that HCG outlines as part of a broader application management strategy. Specifically, AppMan leverages leading systems management technologies, such as Tivoli and BMC Patrol, by integrating at the event level. In addition, AppMan's support for SNMP provides integration with leading enterprise network management systems. This leverages the powerful management technology that is already available on the market and provides the ability for administrators to step up and down the application dependency stack, between applications, systems, and networks to find the root cause of a problem.
AppMan automatically deliver[s] management capabilities without developer intervention. One of the most significant aspects of the AppMan approach is its support for automatically delivering management capabilities without developer intervention. The automatic instrumentation, monitoring, and eventing capabilities of AppMan free the developer from having to learn foreign technologies, such as SNMP development and all its complexities. This automation and ability to embed management capability is critical. Developers are under enormous pressure to deliver important business functionality. In most situations, an application management strategy that requires extensive developer effort is doomed to fail. Unify AppMan avoids this pitfall by automating much of the application management process.


Conclusion

The area of application management is a relatively new focus for the client/server software industry. As an increasing number of companies embrace distributed computing, they will need a comprehensive management strategy that spans from hardware devices to application-level services. HCG expects significant advances in application management in the near future.
The Unify VISION application management approach is an important step forward Application management is very difficult to implement as an afterthought. It must be designed from the ground up as part of a comprehensive management strategy. HCG believes that a combination of application instrumentation and systems management integration is necessary in order for a management strategy to be effective. The Unify VISION application management approach is an important step forward in delivering a comprehensive application management solution to developers. Unify is working to provide the core tools and integrations needed to move developers towards more robust and reliable applications. This is good news for developers and for systems professionals, whose overall effectiveness includes their ability to provide users with industrial strength applications software.
During the 1996-1998 time frame, HCG predicts that applications and systems management will be a key differentiator for companies looking to leverage distributed computing technology for business benefits. Those companies that invest in large-scale distributed systems without an application management strategy in place are unknowingly taking a serious business risk. Organizations that do implement an application management strategy will be well-positioned to reap the benefits of flexible and powerful distributed systems.
Unify is helping to set the agenda for application management With its AppMan strategy, Unify is helping to set the agenda for application management in client/server application development tools. The Unify approach provides the proper foundation for an application management strategy that is both pragmatic and forward-looking. Organizations considering the development of large-scale, mission-critical client/server applications should think ahead to the issue of application management -- the focus of the Unify AppMan offering.

Hurwitz Application Management White Paper
Copyright, 1996, Hurwitz Consulting Group, Inc.
This Web Page Last Revised: 29-Jul-1996
If you have any questions, comments or suggestions regarding our World Wide Web site, please send them to: webmaster@unify.com

Unify Corporation, World Headquarters: 181 Metro Drive, 3rd Floor, San Jose, CA 95110 USA Phone: (408) 467-4500 Fax: (408) 467-4511